#ifndef	__BFX_REFXMLCOMMENT_H__
#define	__BFX_REFXMLCOMMENT_H__

namespace BFX
{

//////////////////////////////////////////////////////////////////////////////

// Represents the content of an XML comment.
class REFXMLComment : public REFXMLLinkedNode
{
protected:
	friend class REFXMLDocument;
	REFXMLComment(const UniString& strComment, REFXMLDocument* pDoc);

public:
	virtual ~REFXMLComment();

	// Gets the name of the node.
	virtual UniString GetName() const;

	// Gets the name of the current node without the namespace prefix.
	virtual UniString GetLocalName() const;

	// Gets the type of the current node.
	virtual XMLNodeType GetNodeType() const;

	// Gets or sets the value of the node.
	virtual UniString GetValue() const;
	virtual void SetValue(const UniString& str);

	// Gets or sets the concatenated values of the node and all its children.
	virtual UniString GetInnerText() const;
	virtual void SetInnerText(const UniString& str);

	// Saves the node to the specified XmlWriter.
	virtual void WriteTo(REFXMLWriter* w) const;

	// Saves all the children of the node to the specified XmlWriter.
	virtual void WriteContentTo(REFXMLWriter* w) const;

private:
	UniString	m_strData;
};

}	//	namespace BFX

#endif	//	__BFX_REFXMLCOMMENT_H__
